/*
	Copyright (C) 2007 by Jean-François Geyelin
	jfgeyelin@gmail.com

	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program; if not, write to the
	Free Software Foundation, Inc.,
	51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/



#ifndef all_H
#define all_H

#include "compilationModifiers.h"


#include <string>
#include <cmath>
#include <stdlib.h>
#include <sstream>
#include <iostream>
#include <stdio.h>
#include <SDL/SDL.h>
#include "customSGE.h"






#ifdef __APPLE__
    #include <SDL_image/SDL_image.h>
#else
    #include <SDL/SDL_image.h>
#endif


#ifdef FMOD_3
    #include <FMOD/fmod.h>
#endif

#ifdef SDL_SOUND
    #include <SDL/SDL_sound.h>
#endif













#ifdef NO_PRINTF
    #define PRINTF(...) {}
#else
    #define PRINTF(...)\
    {printf(__VA_ARGS__);\
    fflush(stdout);}
#endif


#define PRINTF2(...)\
{printf(__VA_ARGS__);\
fflush(stdout);}


#ifdef NO_ERROR_LOG
    #define LOG_ERROR(...) {}
#else
    #define LOG_ERROR(...)\
    {fprintf(stderr,__VA_ARGS__);\
    fflush(stdout);}
#endif



#define _stringify(s) #s
#define stringify(s) _stringify(s)

#define TEST_EXECUTION()\
    {printf(stringify(__LINE__) " \t%s\n",__FUNCTION__);\
    fflush(stdout);}





#ifdef DEBUG_COLLISION
    #define DRAW_IN_CASE_OF_DEBUG\
            drawPix(p.E);\
            drawPix(p.L);\
            drawPix(p.A);\
            drawPix(p.B);\
            drawPix(p.C);\
            drawPix(p.D);\
            drawPix(p.E);\
            drawPix(p.F);\
            drawPix(p.G);\
            drawPix(p.H);\
            drawPix(p.I);\
            drawPix(p.J);\
            drawPix(p.K);\
            drawPix(p.L);
#else
    #define DRAW_IN_CASE_OF_DEBUG
#endif









#endif
